A system, apparatus and methods are provided for operating a collection of devices within a peer-to-peer networking environment.
Peer-to-peer network protocols or technologies allow individual nodes or devices to communicate directly with other peers, and may be contrasted with infrastructure-based environments in which a required central node (e.g., a server, a router, a switch, an access point) passes communications between different nodes. One benefit of direct peer-to-peer communication is that it avoids unnecessary additional routing and processing of communications through other devices.
However, existing peer-to-peer network technologies have limitations that diminish their usability, scalability, and/or performance. For example, some technologies offer only limited peer-to-peer communication capabilities because they are focused on infrastructure-based solutions and therefore require a central node. Peer-to-peer communication in these environments requires negotiation with the central node, and may not be possible between devices that do not share a common central node. Also, communications between peers may be limited by the capabilities of the central node (e.g., frequency band, bandwidth, modulation).
Because of its prominent role, a central node may become congested and thus increase communication latency and decrease communication throughput within the environment. Further, a central node acts as a single point of failure. Even if another node can take over the functions of a failed or missing central node, until that occurs the network may be severely degraded.
Some other technologies that allow for peer-to-peer communications require significant power consumption by individual nodes, which is a principal concern for devices that rely on battery power (e.g., smart phones, tablets, laptop and notebook computers). Excessive power consumption by a peer might be caused by inefficient discovery of services and/or other devices, by having to act as a central node, by inefficient use of the device's transceiver, and/or for other reasons. For example, requiring a device to continually or regularly poll or query other devices will cause it to consume significant amounts of power, especially for a wireless device travelling through different spatial regions.
Yet further, some networking technologies or protocols that support peer-to-peer communications do not coexist well with other technologies. For example, in a wireless environment, typical peer-to-peer protocols are not flexible enough to share a device's radio, antenna or frequency spectrum with other protocols or between applications (e.g., to maintain a Bluetooth® connection). Some peer-to-peer technologies also do not permit multicast communications, instead requiring a device to contact multiple peers individually, and/or do not scale well as the environment becomes more densely populated.
Also, in true peer-to-peer network environments, it can be very difficult or even impossible to determine how many peers are cooperating within the environment at a given time. This information may be useful or even necessary, perhaps to ensure efficient exchange of communications between nodes or to support organization or management of the environment.
In addition, when one collection of peer-to-peer devices abuts the operating area of another collection, depending on their configurations there may be a possibility of interference in their operations. A true peer-to-peer network architecture should be able to recognize this situation, and should alleviate it if and when it does occur.